Motion Engine Differences
The following table outlines some of the main feature differences between the Pipe Network and the PLCopenA vendor -and product- independent worldwide association active in Industrial Control and aiming at standardizing PLC file formats based on XML motion engines. It also provides their associated function blocks.
Topic | Pipe Network | PLCopen |
---|---|---|
Function block format | Begins with ML ex: MLAxisRel |
Begins with MC_ ex: MC_MoveRelative |
Does Function block requires instantiation? | No. Except for MLAxisStop | Most require it |
Method to start execution | Most are level triggered | Most are edge triggered |
Motion execution status, for function block executing motion | Use MLMotionStatus function block |
Each function block includes a standard set of outputs for motion status |
Function block standard input format | Requires additional function blocks to define motion parameters (speed, accel, decel, etc.) | Includes standard set of inputs to define motion (speed, accel, decel, etc.) |
Axis setup method | Includes in the Pipe Network Axis block properties | Part of Axis definition screen in the Project tree |
How the Axis name is setup? | Automatically done as part of Pipe Network Axis block properties | Create an instance of a Axis_Ref variable structure in the dictionary, then assign an axis number to it in a PLC![]() |
Is there additional motion editor? | Yes (Pipe Network editor) | No |
Motion buffering | Execution of multiple motion commands in a row is handled by the programmer | Function blocks have built in buffering modes |
Motion jerk![]() |
Primarily available by adding cams to the Pipe Network | Function blocks have jerk reduction input |